package org.convallaria.system.biz.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.convallaria.infrastruct.db.mapper.BaseMapperX;
import org.convallaria.system.biz.entity.SysMenu;

/**
 * 系统菜单 Mapper 接口
 * 
 * 功能特性：
 * - 继承BaseMapperX，支持多表联查
 * - 支持批量操作的高性能实现
 * - 支持忽略逻辑删除的查询方法
 * - 提供统计和聚合查询方法
 * - 支持自定义SQL片段复用
 * 
 * 业务说明：
 * - 菜单管理是权限系统的核心组件
 * - 支持多租户数据隔离
 * - 支持软删除机制
 * - 支持乐观锁并发控制
 * - 支持菜单层级管理（树形结构）
 * - 支持菜单状态管理
 * - 支持菜单类型管理（目录、菜单、按钮）
 * - 支持菜单显示控制
 * - 支持外链和缓存控制
 * - 支持权限标识管理
 * 
 * 菜单类型：
 * - M：目录，用于组织菜单结构
 * - C：菜单，用于页面导航
 * - F：按钮，用于页面操作权限控制
 * 
 * 层级关系：
 * - parent_id：父菜单ID，0表示根菜单
 * - order_num：显示顺序，数值越小越靠前
 * 
 * 关联关系：
 * - 与角色表：多对多关系，通过sys_role_menu关联表
 * - 与租户表：多对一关系，通过tenant_id关联
 * 
 * 数据约束：
 * - menu_name：菜单名称，必填
 * - menu_type：菜单类型，M/C/F
 * - status：菜单状态，0=正常，1=停用
 * - visible：显示状态，0=显示，1=隐藏
 * - is_frame：外链标识，0=外链，1=内链
 * - is_cache：缓存标识，0=缓存，1=不缓存
 * 
 * 数据安全：
 * - 支持菜单数据权限控制
 * - 支持菜单状态控制（正常/停用）
 * - 支持菜单显示控制（显示/隐藏）
 * - 支持菜单类型控制（目录/菜单/按钮）
 * - 支持权限标识管理
 * 
 * @author convallaria
 * @since 1.0.0
 */
@Mapper
public interface SysMenuMapper extends BaseMapperX<SysMenu> {

}
